# !/usr/bin/env python
# -*- coding: utf-8 -*-
"""
 -------------------------------------------------
    File Name:     errors.py
    Description:   定义项目中使用的各种异常类
 -------------------------------------------------
 """


class ErrorMixin:
    """错误基类"""

    def __init__(self, msg: str) -> None:
        self.msg = msg

    def __str__(self) -> str:
        return f"{self.__class__.__name__}: {self.msg}"


class ConfigInitError(ErrorMixin, RuntimeError):
    """配置初始化错误"""

    def __init__(self, msg: str) -> None:
        super().__init__(msg)


class AuthError(ErrorMixin, ValueError):
    """认证错误"""

    def __init__(self, msg: str) -> None:
        super().__init__(msg)


class RequestDataParseError(ErrorMixin, ValueError):
    """请求数据解析错误"""

    def __init__(self, msg: str) -> None:
        super().__init__(msg)


class CorrelateTestCaseError(ErrorMixin, ValueError):
    """关联测试用例错误"""

    def __init__(self, msg: str) -> None:
        super().__init__(msg)


class SendRequestError(ErrorMixin, RuntimeError):
    """发送请求错误"""

    def __init__(self, msg: str) -> None:
        super().__init__(msg)


class JsonPathFindError(ErrorMixin, ValueError):
    """JsonPath查找错误"""

    def __init__(self, msg: str) -> None:
        super().__init__(msg)


class VariableError(ErrorMixin, ValueError):
    """变量错误"""

    def __init__(self, msg: str) -> None:
        super().__init__(msg)


class SQLSyntaxError(ErrorMixin, ValueError):
    """SQL语法错误"""

    def __init__(self, msg: str) -> None:
        super().__init__(msg)


class AssertSyntaxError(ErrorMixin, ValueError):
    """断言格式错误"""

    def __init__(self, msg: str) -> None:
        super().__init__(msg)


class AssertError(ErrorMixin, AssertionError):
    """断言错误"""

    def __init__(self, msg: str) -> None:
        super().__init__(msg)
